package com.code.lightning.config;

import com.code.lightning.common.enums.LightingCore;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 用户配置类
 * @author LGX_TvT
 * @date 2021-01-15 22:17
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BasicGeneratorConfig extends BasicDataBaseConfig {

    public final static String CONFIG = "lightningGenerator";

    /* ================ 基础配置 =================== */
    /**
     * 编程语言
     */
    private String language = LightingCore.LanguageCategory.JAVA.getValue();

    /**
     * 包名
     */
    private String packageName = "com.lighting.generator";

    /**
     * 命名风格, 默认驼峰命名
     */
    private String nameStyle = LightingCore.NameStyle.HUMP.getValue();

    /**
     * 作者
     */
    private String author = "LightingGenerator";

    /**
     * 版本
     */
    private String version = "v1.0.0";

    /* ================ 数据库配置 =================== */

    /**
     * 包含的表
     */
    private List<String> includeTables = new ArrayList<>();

    /**
     * 排除某些表
     */
    private List<String> excludeTables = new ArrayList<>();

    /* ================ 模板配置 =================== */

    /**
     * 基础模板输入路径
     */
    private String templateBaseInputPath = "";

    /**
     * 基础模板输出路径
     */
    private String templateBaseOutputPath = "";

    /**
     * 基础模板映射
     */
    private Map<String, String> templateMapping = new HashMap<>();

    /* ================ 自定义属性配置 =================== */

    /**
     * 用户自定义配置
     */
    private Map<String, Object> userCustomConfig = new HashMap<>();

}
